<template>
  <div class="todo-header">
    <input type="text" v-model="content" @keyup.enter="addContent" placeholder="请输入你的任务名称，按回车键确认" />
  </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";

export default defineComponent({
  name: "Header",
});

</script>

<script lang="ts" setup>
import { ref } from "vue";
import { nanoid } from "nanoid";

// 接收父组件的方法
interface propsData {
  addTodo(newTodo: TodoListItem): void;
}

const props = defineProps<propsData>();

const content = ref("");
const addContent = () => {
  // 判断是否为空
  if (!content.value.trim()) return;
  // 创建新对象
  const newTodo = { id: nanoid(), thing: content.value, done: false }

  // 向App组件传值,新增任务
  props.addTodo(newTodo);

  // 清空输入框
  content.value = "";
}

</script>

<style scoped>
/*header*/
.todo-header input {
  width: 560px;
  height: 28px;
  font-size: 14px;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 4px 7px;
}

.todo-header input:focus {
  outline: none;
  border-color: rgba(82, 168, 236, 0.8);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
}
</style>